package main

import "sort"

/* 二分

二分边长的一半，我们需要计算出该正方形内的苹果个数。

我们可以找出每一圈的苹果个数公式，然后利用该公式累加。

对于左下角在 $(-i,-i)$，右上角在 $(i,i)$ 的这一圈苹果，将这一圈拆分成四角的 $4$ 个苹果树，坐标包含 $0$ 的 $4$ 个苹果树，由于对称性，其余苹果树均可视作从 $(i,1)$ 到 $(i,i-1)$ 的苹果树，这有 $8$ 段。

四角的 $4$ 个苹果树共有 $8i$ 个苹果，坐标包含 $0$ 的 $4$ 个苹果树共有 $4i$ 个苹果，从 $(i,1)$ 到 $(i,i-1)$ 的苹果树有 $\dfrac{i\cdot (i-1)}{2}+i*(i-1)$ 个苹果，乘上 $8$ 得 $12i(i-1)$ 个苹果，因此这一圈共有 $12i^2$ 个苹果。

利用平方和公式，可以得到半边长为 $n$ 的正方形内的苹果个数为 $2n(n+1)(2n+1)$。

然后二分判断即可，对于本题的数据范围，二分的上界为 62996。

求出半边长后，乘上 $8$ 即得到了正方形的周长。

*/

// github.com/EndlessCheng/codeforces-go
func minimumPerimeter(neededApples int64) int64 {
	return int64(8 * sort.Search(62996, func(n int) bool { return 2*n*(n+1)*(2*n+1) >= int(neededApples) }))
}
